import createAjax from "uni-ajax";

const baseUrl = process.env.VUE_APP_BASE_API;

// const request = (url = "", date = {}, method = "GET") => {
//   return new Promise((resolve, reject) => {
//     uni.request({
//       method: method,
//       url: baseUrl + url,
//       data: date,
//       header: {},
//       dataType: "json",
//       success: (res) => {
//         if (
//           res.data.code === 50008 ||
//           res.data.code === 50012 ||
//           res.data.code === 50014
//         ) {
//           uni.showToast({ title: "请重新登录！", icon: "none" });
//           setTimeout(() => {
//             // 关闭首页页面栈
//             // uni.redirectTo({url: '/pages/account/login'})
//           }, 1000);
//         } else if (res.data.code === -1 || res.data.code === 15000) {
//           uni.showToast({ title: res.data.message, icon: "none" });
//           // Message.error(res.message)
//           resolve(res.data);
//         } else {
//           resolve(res.data);
//         }
//       },
//       fail: (err) => {
//         console.log(20, res);
//         reject(err);
//       },
//       complete: () => {},
//     });
//     // .then((response) => {
//     //     setTimeout(function() {
//     //         uni.hideLoading();
//     //     }, 200);
//     //     let [error, res] = response;
//     //     resolve(res.data);
//     // }).catch(error => {
//     //     let [err, res] = error;
//     //     reject(err)
//     // })
//   });
// };

// Default configuration
const ajax = createAjax({
  baseUrl,
  withCredentials: true,
  // dataType: "json",
  method: 'get',
  // header: {
  //   'Content-Type': 'application/x-www-form-urlencoded'
  // }
});

ajax.interceptors.request.use(
  (request) => {
    // Do something before request is sent
    return request;
  },
  (error) => {
    // Do something with request error
    return error;
  }
);

ajax.interceptors.response.use(
  (response) => {
    // Do something with response data
    console.log(response);
    if (
      response.data.code === 50008 ||
      response.data.code === 50012 ||
      response.data.code === 50014
    ) {
      uni.showToast({ title: "请重新登录！", icon: "none" });
      setTimeout(() => {
        // 关闭首页页面栈
        uni.redirectTo({ url: "/pages/account/login" });
      }, 1000);
    } else if (response.data.code === -1 || response.data.code === 15000) {
      uni.showToast({ title: response.data.message, icon: "none" });
      // Message.error(response.message)
    }
    return response.data;
  },
  (error) => {
    // Do something with response error
    uni.showToast({ title: '糟糕，服务器开小差了!', icon: 'none'})
    return error;
  }
);

const request = (url, params = {}, method = "get") => {
  if (typeof url === "string") {
    return ajax.request({
      url,
      data: params,
      method,
    });
  } else if (typeof url === "object") {
    return ajax.request(url);
  }
};

export default request;
